import { createApp } from 'vue'
import App from './App.vue'
import router from './router'

require('./assets/css/iconfont.css')
// require('./assets/css/animate.css')

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

// 解决 ElTable 自动宽度高度导致的「ResizeObserver loop limit exceeded」问题
const debounce = (fn, delay) => {
  let timer = null;
  return function () {
    let context = this;
    let args = arguments;
    clearTimeout(timer);
    timer = setTimeout(function () {
      fn.apply(context, args);
    }, delay);
  }
}

const _ResizeObserver = window.ResizeObserver;
window.ResizeObserver = class ResizeObserver extends _ResizeObserver{
  constructor(callback) {
    callback = debounce(callback, 16);
    super(callback);
  }
}

// app 加载数据
const app = createApp(App)
import g from './hooks/useGlobalData'
app.config.globalProperties.$const = g.CONST_DATA
app.config.globalProperties.$var = g.VAR_DATA
app.use(router).use(ElementPlus).mount('#app')
